//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//

#include "IPMStateMachine.h"
#include "xllp_i2c_proc.h"
#include "xllp_ost.h"


class CIPM_Micco_VoltageController:CIPMVoltageController
{
public:
    CIPM_Micco_VoltageController()
    {
        //init members
        m_VccSramPrev=0;
        m_VccCorePrev=0;
        m_pI2CRegs=NULL;
        m_pOSTRegs=NULL;
    };
    virtual ~CIPM_Micco_VoltageController(){
    };

    virtual IPM_STATUS_T InitController();
    virtual IPM_STATUS_T SetOPVoltage(XLLP_UINT32_T VccSram,XLLP_UINT32_T VccCore);
    virtual IPM_STATUS_T RestorePrevVoltage();
    virtual IPM_STATUS_T GetPMVccSram(XLLP_UINT32_T * VccApps);
    virtual IPM_STATUS_T GetPMVccCore(XLLP_UINT32_T *VccCore);
private :
    volatile P_XLLP_I2C_T m_pI2CRegs;
    volatile P_XLLP_OST_T m_pOSTRegs;
    XLLP_UINT32_T m_VccSramPrev;
    XLLP_UINT32_T m_VccCorePrev;

};
